package com.hhck.mapper;

import com.hhck.entity.Page;
import com.hhck.entity.Role;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface RoleMapper {

    // 查询所有角色（已启用）
    public List<Role> selectAllRole();

    // 根据用户id查询用户已分配的角色
    public List<Role> selectUserRoleByUserId(Integer userId);

    // 根据角色名查询角色id
    public List<Integer> selectRoleIdListByRoleName(@Param("roleNameList") List<String> roleNameList);

    // 分页查询所有角色（条件查询）
    public List<Role> selectRoleByPage(@Param("page") Page page, @Param("role") Role role);

    // 查询角色总行数（条件查询）
    public int selectRoleCount(Role role);

    // 根据角色名称或角色代码查询角色
    public Role selectRoleByRoleNameOrRoleCode(@Param("roleName") String roleName, @Param("roleCode") String roleCode);

    // 添加角色
    public int insertRole(Role role);

    // 根据角色id启用或禁用角色
    public int updateRoleStateByRoleId(Role role);

    // 根据角色id删除角色
    public int deleteRoleByRoleId(Integer roleId);

    // 根据角色id修改角色描述信息
    public int updateRoleDescByRoleId(Role role);

}

